package back.Java的四种引用强弱软虚;

import java.lang.ref.WeakReference;

public class WeakReferenceExample {
    // 弱引用的强度比软引用更弱，只要垃圾回收器运行，无论内存是否充足，弱引用指向的对象都会被回收。
    public static void main(String[] args) {
        // 创建一个对象，并使用弱引用引用它
        Object object = new Object();
        WeakReference<Object> weakReference = new WeakReference<>(object);

        // 断开强引用
        object = null;

        // 尝试触发垃圾回收
        System.gc();

        // 获取弱引用指向的对象
        Object retrievedObject = weakReference.get();
        System.out.println(retrievedObject);
        // 如果垃圾回收器已经回收了对象，retrievedObject 将为 null
        if (retrievedObject == null) {
            System.out.println("对象已被回收");
        } else {
            System.out.println("对象仍然存在");
        }
    }
}
